package com.zp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zp.domain.entity.Space;
import com.zp.domain.entity.User;
import com.zp.domain.request.space.analyze.*;
import com.zp.domain.response.*;

import java.util.List;


public interface SpaceAnalyzeService extends IService<Space> {

    /**
     * 空间大小使用分析
     *
     * @param request   请求参数
     * @param loginUser 登录用户
     * @return 响应结果
     */
    com.zp.domain.response.SpaceUsageAnalyzeResponse getSpaceUsageAnalyze(com.zp.domain.request.space.analyze.SpaceUsageAnalyzeRequest request, User loginUser);

    /**
     * 空间图片分类分析
     *
     * @param request   请求参数
     * @param loginUser 登录用户
     * @return 响应结果
     */
    List<com.zp.domain.response.SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyze(com.zp.domain.request.space.analyze.SpaceCategoryAnalyzeRequest request, User loginUser);

    /**
     * 获取空间图片标签分析
     *
     * @param request   获取空间图片标签分析请求
     * @param loginUser 登录用户
     * @return 图片标签分析结果
     */
    List<com.zp.domain.response.SpaceTagAnalyzeResponse> getSpaceTagAnalyze(com.zp.domain.request.space.analyze.SpaceTagAnalyzeRequest request, User loginUser);

    /**
     * 空间内图片大小分析
     *
     * @param request   图片大小分析请求
     * @param loginUser 当前登录用户
     * @return 图片大小分析结果
     */
    List<com.zp.domain.response.SpaceSizeAnalyzeResponse> getSpaceSizeAnalyze(com.zp.domain.request.space.analyze.SpaceSizeAnalyzeRequest request, User loginUser);

    /**
     * 用户上传行为分析
     *
     * @param request   获取空间用户分析请求
     * @param loginUser 登录用户
     * @return 用户分析结果
     */
    List<com.zp.domain.response.SpaceUserAnalyzeResponse> getSpaceUserAnalyze(com.zp.domain.request.space.analyze.SpaceUserAnalyzeRequest request, User loginUser);

    /**
     * 空间使用排行分析
     *
     * @param request   获取空间使用排行请求
     * @param loginUser 登录用户
     * @return 空间排名
     */
    List<Space> getSpaceRankAnalyze(com.zp.domain.request.space.analyze.SpaceRankAnalyzeRequest request, User loginUser);
}
